Recording extension of delayed media content

ABSTRACT

Presented herein is a method of extending a recording in a media content receiver of a media event that is delayed. In the method, a recording of media content is begun at an expected start time for the media event based on a recording timer, wherein the recording timer indicates the expected start time and an expected end time for the media event. After beginning the recording, the media content being recorded is analyzed to determine an actual start time for the media event. The actual start time is then compared with the expected start time. If the difference between the actual start time and the expected start time exceeds some predetermined value, the expected end time is adjusted to extend the recording. The recording is then ended at the adjusted end time.

BACKGROUND

For many years, viewers of broadcast television content, such as movies,news programs, weekly television episodes, sporting events, and thelike, have taken fully advantage of the ability to record their favoriteprograms for subsequent viewing at a latter, more convenient time. Thisability was first made widely available via the video cassette recorder(VCR), and more recently by way of the digital video recorder (DVR) orpersonal video recorder (PVR). With DVR technology, users may simplyselect a program to record from an electronic program guide (EPG)presented to the user via a television display. Further, the user mayalso be able to record each instance of a recurring program, such as aweekly episode, by setting a single recording timer in the DVR unit,which may be a standalone device, or a sub-unit incorporated into asatellite, cable, or terrestrial television receiver. In many cases, theuser may also manually add or subtract time from the beginning and endof the program to account for small differences between the scheduledbroadcast time and the typical broadcast time for the program.

While product developers continue to improve and simplify the user'sinteraction with a DVR for home recording of television programs, someunpredictable situations regarding the timing of television programbroadcasts continue to make error-free recording difficult to attain.For example, due to unforeseen circumstances, a television presentationpreceding a program for which a recording timer has been set maycontinue beyond its schedule ending time, thus delaying the program tobe recorded by some unknown amount of time. As a result, while thebeginning of the program may be recorded, the recording may end prior tothe actual end of the selected program due to the unanticipated delay.In cases in which a program selected for recording has been rescheduledwell in advance, the provider of EPG data residing in the DVR unit maybe able to update the EPG data remotely, resulting in the associatedrecording timer being adjusted accordingly. However, if the program tobe recorded is delayed with little or no warning, the EPG data providerwould need to provide the unlikely capability of updating the EPG datain the recording DVR unit in real time for all programming channels toyield a proper recording of the program.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure may be better understood withreference to the following drawings. The components in the drawings arenot necessarily depicted to scale, as emphasis is instead placed uponclear illustration of the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views. Also, while several embodiments aredescribed in connection with these drawings, the disclosure is notlimited to the embodiments disclosed herein. On the contrary, the intentis to cover all alternatives, modifications, and equivalents.

FIG. 1 is a simplified block diagram of a media content distributionsystem according to an embodiment of the invention.

FIG. 2 is a flow diagram of a method according to an embodiment of theinvention of extending a recording in a media content receiver of adelayed media event.

FIG. 3 is a block diagram of a satellite television broadcast systemaccording to an embodiment of the invention.

FIG. 4 is a block diagram of a television set-top box as employed in thesatellite television broadcast system of FIG. 3 according to anembodiment of the invention.

FIG. 5 is a graphical representation of a delayed television program tobe recorded according to an embodiment of the invention.

FIGS. 6A and 6B provide two different graphical representations of atelevision program to be recorded which is logically partitioned intosegments according to an embodiment of the invention.

DETAILED DESCRIPTION

The enclosed drawings and the following description depict specificembodiments of the invention to teach those skilled in the art how tomake and use the best mode of the invention. For the purpose of teachinginventive principles, some conventional aspects have been simplified oromitted. Those skilled in the art will appreciate variations of theseembodiments that fall within the scope of the invention. Those skilledin the art will also appreciate that the features described below can becombined in various ways to form multiple embodiments of the invention.As a result, the invention is not limited to the specific embodimentsdescribed below, but only by the claims and their equivalents.

FIG. 1 is a block diagram of a simplified media content distributionsystem 100 in which a media content source 102 transmits media content110 to a media content receiver 104. Examples of the media contentdistribution system 100 include but are not limited to satellite, cable,and terrestrial (“over-the-air”) television broadcast systems. Othercontent distribution systems 100 may include satellite radio networks,cellular phone networks (including third generation, or “3G”, networks),and the Internet, or other wide-area network (WAN) or local-area network(LAN) communication systems, whether or not of a broadcast variety. Thesystem 100 may employ any wired or wireless transmission, or somecombination thereof, for transmitting the media content 110 from themedia content source 102 to the media content receiver 104. The mediacontent 110 may include any audio and/or visual information to beconsumed by a user.

The media content source 102 may be any source of the content 110,including those sources 102 which generate the actual content 110, andthose sources 102 which receive the content 110 from another sourcebefore forwarding the content 110 to another device. Examples of themedia content source 102 include but are not limited to satellitetelevision uplink centers, cable television head-ends, terrestrialtelevision transmitters, Internet and other WAN servers, and desktop andlaptop computers.

The media content receiver 104 may be any device configured to receivethe media content 110 and present that content 110 in some form to auser of the receiver 104. Moreover, as is described in greater detailbelow, the media content receiver 104 is configured to record thereceived media content 110 for presentation to the user at a subsequenttime of the user's choosing. Examples of the media content receiver 104may include but are not limited to television set-top boxesincorporating a DVR device, a standalone DVR unit, television units andaudio receivers possessing a content recording capability, and portablecommunication devices, such as cellular phones and personal digitalassistants (PDAs). The media content receiver 104 may also forward themedia content 110 to an output device, such as a television, videomonitor, and/or audio receiver, or may incorporate such a device thereinto present the content 110 directly to the user.

FIG. 2 presents a method 200 of extending a recording in a media contentreceiver (such as the receiver 104 of FIG. 1) of a delayed media event,which may be represented in the media content 110 shown in FIG. 1. Inthe method 200, the media content receiver 104 begins a recording of themedia content 110 at an expected start time for a media event based on arecording timer (operation 202). The recording timer indicates theexpected start time as well as an expected end time for the media event.After beginning the recording, the receiver 104 analyzes the mediacontent 110 being recorded to determine an actual start time for themedia event (operation 204). The receiver 104 compares the actual starttime with the expected start time from the recording timer (operation206). If the difference between the actual start time and the expectedstart time exceeds a predetermined value, the expected end time isadjusted to extend the recording (operation 208). In one example, theexpected end time is adjusted by adding the difference thereto. Therecording is then ended at the adjusted end time (operation 210).

While the operations of FIG. 2 are depicted as being executed in aparticular order, other orders of execution, including concurrent oroverlapping execution of two or more implied or explicit operations, maybe possible. For example, once the recording is begun (operation 202),the recording operation may continue while the analysis (operation 204),comparison (operation 206), and adding operation (operation 208) areexecuted. In another embodiment, a computer-readable storage medium mayhave encoded thereon instructions for a processor or other controlcircuitry of an electronic device, such as the media content receiver104 of FIG. 1, to implement the method 200.

As a result of employing the method 200, a media event, such as atelevision program, whose starting transmission time has been delayedmay nonetheless be recorded in its entirety by extending or delaying thetime at which the preset recording is to be ended. Such functionalitymay reduce or eliminate user frustration in situations in which a mediaevent has been delayed, such as when a previous program has beenunexpectedly delayed or lengthened, or in the wake of an impromptuinterruption in preceding media content programming. Additionaladvantages may be recognized from the various implementations of theinvention discussed in greater detail below.

FIG. 3 is a block diagram of a satellite television broadcast system 300according to an embodiment of the invention. The broadcast system 300may be viewed as a more specific example of the media contentdistribution system 100 of FIG. 1. As shown, the satellite televisionbroadcast system 300 includes a television content source 301, asatellite uplink center 302, a satellite 303, a television set-top box304, and a television 305 connected to the set-top box 304. Multipleinstances of several of these devices, such as multiple content sources301, satellites 303, set-top boxes 304, and the like, may be included,but are not explicitly shown in FIG. 3. Further, other devices couplingthe various components of the broadcast system 300, such ascommunication servers or nodes between the satellite uplink center 302and the set-top box 304, may be present, but are not discussed furtherherein to focus and simplify the following description of the variousembodiments.

In the system 300 of FIG. 3, one or more television content sources,such as cable or satellite television networks and independenttelevision outlets, provide television content 310 to the satelliteuplink center 302 via satellite connection, wired communication, orother means. In one implementation, the content source 301 may alsoprovide metadata 312 describing one or more aspects or characteristicsrelating to an initial or introductory portion of the transmittedtelevision content 310. The metadata 312 is described in greater detailbelow.

In turn, the satellite uplink center 302 receives the television content310, processes the content 310 for transmission, and the transmits thecontent 310 to one or more satellites 303 by way of at least onecommunication channel of a satellite uplink. The uplink may also carryother information, such as electronic program guide (EPG) data andfirmware upgrades for the set-top box 304. The satellite uplink center302 may generate at least some of the television content 310 and/orassociated information internally. Also, the uplink center 302 maytransmit the content metadata 312 for reception at the set-top box 304by way of the satellite 310 (metadata 312A) or by way of a separatecommunication path (metadata 312B), such as by way of a telephone orInternet connection.

The satellite 303 employs at least one signal transponder (not shown inFIG. 3) to receive the various channels of content 310 and relatedinformation on the satellite uplink, and retransmit the content andadditional information via a satellite downlink to the televisionset-top box 304, as well as other set-top boxes not illustrated in FIG.3. The television set-top box 304 is described with greaterparticularity below in conjunction with FIG. 4. Typically, the set-topbox 304 is configured to receive the content 310 (and the contentmetadata 312, if present) on the downlink via a parabolic antenna and alow-noise block-converter (LNB) attached thereto. The television set-topbox 304 is configured to process and transfer the received content 310for at least one television 305 for presentation to a user. The set-topbox 304 also receives the content metadata 312 by way of the satellite303, the uplink center 302, or some other device communicatively coupledwith the set-top box 304.

An example of the television set-top box 304 of FIG. 3 is depicted inFIG. 4. In this case, the set-top box 304 includes a content inputinterface 402, a content output interface 404, a user interface 406,data storage 408, and control circuitry 410 coupled to the othercomponents 402-408 of the set-top box 304. Optionally, a communicationinterface 412 may also be included. Other components, such as a powersupply, a “smart card” interface, and so forth, may also be included inthe set-top box 304, but such components are not described furtherherein to simplify the following discussion.

The content input interface 402 receives television content 310, such asbroadcast television programming, from a content source, such as thesource 301, via the satellite uplink center 302 and satellite 303 ofFIG. 3. More specifically, the content input interface 402 receives thecontent 310 via an antenna/LNB combination 430, which receives,down-converts, and forwards the content 310 to the content inputinterface 402, typically via a coaxial cable. The content inputinterface 402 may include one or more tuners for selecting particularprogramming channels of the incoming content 310 for forwarding to atelevision, such as the television 305 of FIG. 3. The content inputinterface 402 may also perform any decryption, decoding, and similarprocessing of the received content 310 required to place the content 310in a format usable by the content output interface 404. In one example,such a format may be one of the Motion Picture Experts Group (MPEG)formats, such as MPEG-2 or MPEG-4, although other audio/video contentformat standards may be utilized in other embodiments.

The content output interface 404 provides the selected and processedtelevision content 310 as output television content 310A to thetelevision connected thereto. To that end, the content output interface404 may encode the selected television content in accordance with one ormore television output formats. For example, the content outputinterface 404 may format the content 310 for one or more of a compositeor component video connection with associated audio connection, amodulated radio frequency (RF) connection, and a High DefinitionMultimedia Interface (HDMI) connection.

To allow a user to control various functions and aspects of the set-topbox 304, including the selection of programming channels for viewing andrecording, the user interface 406 receives user input 424 for suchpurposes. In many examples, the user interface 406 may be a remotecontrol interface configured to receive the command input 424 by way ofinfrared (IR), radio frequency (RF), acoustic, or other wireless signaltechnologies. To facilitate such information entry, the set-top box 304may provide a menu system presented to the user via the connectedtelevision or video monitor. In some implementations, the user interface406 may also include any of a keyboard, mouse, and/or other user inputdevice.

The data storage 408 is configured to store several different types ofinformation employable in the operation of the set-top box 304. As shownin FIG. 4, this information includes stored television content 430 thathas been buffered or recorded for subsequent viewing, stored contentmetadata 432 received as metadata 312 from the satellite uplink center,one or more recording timers 434 for recording programs of interest, andparameters 436 or configuration information for controlling theoperation of the set-top box 304. Other information, such as EPGinformation and so forth, may also be included in the data storage 408.The data storage 408 may include volatile memory, such as static and/ordynamic random-access memory (RAM), and/or nonvolatile memory, such asread-only memory (ROM), flash memory, and magnetic or optical diskmemory.

The control circuitry 410 is configured to control and/or access othercomponents of the set-top box 304. The control circuitry 410 may includeone or more processors, such as a microprocessor, microcontroller, ordigital signal processor (DSP), configured to execute instructionsdirecting the processor to perform the functions discussed more fullyhereinafter. The control circuitry 410 may also include memory or datastorage adapted to contain such instructions, or may utilize the datastorage 408 for that purpose. The memory may also include other data toaid the control circuitry 410 in performing the tasks more particularlydescribed below. In another implementation, the control circuitry 410may be strictly hardware-based logic, or may include a combination ofhardware, firmware, and/or software elements.

As illustrated in FIG. 4, the content metadata 312 to be stored in thedata storage 408 may be received via the content input interface 402. Inone example, the metadata 312 may be received as part of the televisioncontent 310, with the metadata 312 referring to a subsequent program inthe content 310 being transmitted. In some implementations, the metadata312 may be transferred on a channel received at the content inputinterface 402 that is separate from the one or more channels carryingthe television content 310. Optionally, the communication interface 412may receive the metadata 312 via the satellite uplink center 302. Thecommunication interface 412 may employ any of a number of communicationtechnologies to receive the metadata 312, including both wired andwireless varieties. For example, the communication interface 412 may bean Ethernet, Wi-Fi (IEEE 802.11x), or Bluetooth® interface forconnecting with an Internet gateway device for communicating with theuplink center 302 over the Internet. In another implementation, thecommunication interface 412 may employ a direct connection to a phoneline for receiving the metadata 312.

In operation, the control circuitry 410 of the set-top box 304, amongits other duties, is capable of determining whether a television programor media event being recorded under the control of a recording timer 434actually started at its expected start time, and then, if not, adjustingthe end time of the timer 434 accordingly. FIG. 5 provides a graphicalrepresentation of the transmission over a television channel of atelevision program 500 selected by the user for recording. The point intime at which the recording begins is denoted as the expected start time502A, and the point in time at which the recording is scheduled toterminate is the expected end time 504A. A recording timer 434 stored inthe data storage 408 of the set-top box 304 includes data indicating theexpected start time 502A and the expected end time 504A. In thesituation depicted in FIG. 5, however, the broadcast or transmission ofthe selected television program 500 is delayed significantly beyond theexpected start time 502A to an actual start time 502B, thus causing theend of the program to extend beyond the expected end time 504A to anactual end time 504B. Thus, to prevent the recording of the program 500from ending prior to its actual end time 504B, the control circuitry 410is configured to revise or update the expected end time 504A in thecorresponding recording timer 434 to extend the recording, possibly tothe actual end time 504B of the program 500.

To accomplish this goal, the control circuitry 410 may determine theactual start time 502B of the selected program 500 by analyzing thecontent on the channel being recorded in view of the stored metadata 432corresponding with the selected program or media event 500 to berecorded. In one implementation, the metadata 312 describes one or morerecognizable and somewhat unique portions of the audio and/or videocontent of the program 500 to be recorded, possibly along with anindication of where the content portion is located within the program500. The received metadata 312 may be delivered at any point prior to,or during an early portion of, the transmission of the program 500 to berecorded.

In FIG. 3, the metadata 312 may be delivered along the same uplink anddownlink path from the satellite uplink center 302 via the satellite 303to the set-top box 304. In the embodiment of FIG. 4, the metadata 312received along such a path would enter the set-top box 304 at itscontent input interface 402. In another embodiment of FIG. 3, themetadata 312 may be received from the uplink center 302 via aterrestrial route, such as the Internet or a phone connection, to theset-top box 304. As shown in FIG. 4, the communication interface 412 isconfigured to receive the metadata 312 over such a path.

Also in FIG. 3, the uplink center 302 may generate the metadata 312after receiving the selected program 500 of the television content 310from the content source 301 and analyzing the program 500. In anotherexample, the television content source 301 may generate the metadata 312and transfer it to the uplink center 302 for forwarding to the set-topbox 304 via either path discussed above.

In one example, the selected program 500 contains audio and videocontent, along with text data associated with the program 500. The textdata may include closed captioning data (e.g., data adhering to theCEA-608 and/or CEA-708 standards developed by the Electronic IndustriesAlliance (EIA)) and/or subtitle data intended to be displayed inconjunction with the video portion of the program 500. In otherimplementations, text data does not accompany the audio and videocontent.

If text data is present as part of the selected program 500, the storedmetadata 432 may contain a sample of a unique or recognizable portion ofthe text data presented near the beginning of the selected program 500.For example, this portion of the text data may be closed captioning datafor a few words or a sentence that is generally presented at the openingsegment or portion of the program 500, such as the title of the program,the name of one or more actors appearing in the program, and so on. Inthis example, control circuitry 410 may then analyze or search for textdata of the program 500 just prior to recording, as it is beingrecorded, or after being recorded in the data storage 408 as storedcontent 430 in an attempt to find text that matches the text data samplein the stored metadata 431. In one particular example, the eXtended DataServices (XDS) portion of closed captioning data as defined under theCEA-608 standard may include the title of the program 500, which may beemployed as the text data sample presuming that the title appears at ornear the start of the program 500.

If such a match exists, then presuming the matching text appears nearthe beginning of the selected program 500, the control circuitry 410determines a point in time, or a time stamp, associated with thematching text. In one example, the control circuitry 410 may identify avideo frame associated with the matching text, and then use a time stampassociated with that frame, such as a Presentation Time Stamp (PTS),Decoding Time Stamp (DTS), or a reference time stamp, to determine theactual start time 502B of the program.

Once the control circuitry 410 determines the actual start time 502B,the control circuitry 410 may compare the actual start time 502B withthe expected start time 502A, and calculate the difference between thetwo. If the difference is less than some predetermined time value, suchas a minute or two, than the control circuitry may determine that nochanges to the recording timer 434 are required. If, instead, thedifference exceeds that value, then the control circuitry 410 may addthe difference to the expected end time 504A of the correspondingrecording timer 434 to set what may be considered to be the actual endtime 504B. In other implementations, some value other than thecalculated difference may be used to adjust the expected end time 504A.The control circuitry 410 may then update the expected end time 504A asstored in the recording timer 434, thus approximating the actual endtime 504B. In some embodiments, the control circuitry 410 may also trimthe portion of the recording preceding the actual start time 502B of theprogram 500 to reduce the amount of space in the data storage 408consumed by the portion of the recording not belonging to the selectedprogram 500.

In one implementation, multiple recording timers 434 may be set forvarious programs that the user intends to record. As a result, extendingthe recording time of the timer 434 for the delayed program 500 maycause a conflict with a second timer 434. More specifically, the secondtimer 434 may be set to record a program scheduled to start shortlyafter the expected end time 504A of the first selected program 500 onanother channel. In such instances, the control circuitry 410 may beconfigured to modify the first or second timer 434 to eliminate theconflict. For example, if the user has previously indicated somepriority between the two programs by way of the user interface 406, thecontrol circuitry 410 may either end the recording of the selectedprogram 500 associated with the first timer 434 earlier, or delay thestart of the recording of the program related to the second timer 434 toeliminate the conflict, or some combination thereof. In another example,the control circuitry 410 may search for another presentation time, suchas a repeat showing, for either the delayed program 500 associated withthe first recording timer 434 or the program associated with the secondrecording timer 434 via EPG data resident in the set-top box 304, andreset the timer 434 accordingly if an alternate presentation time forthe program was discovered.

In some scenarios, the control circuitry 410 may not be successful infinding text data in the selected program 500 that matches the sampletext data of the stored metadata 432. For example, that portion of thetext data of the program 500 may be corrupted or missing entirely fromthe received content 310. In response, the control circuitry 410 maycease looking for a match within some predetermined time period afterthe expected start time 502A of the program 500, such as a half-hour, anhour, or even several hours. In addition, the control circuitry 410 maypreemptively adjust the expected end time 504A component of therecording timer 434, possibly in multiple increments, during the time amatch with the sample text data is not forthcoming. Also, a limit on theamount of recording extension may be imposed in case the controlcircuitry 410 never finds a match.

To help protect against the possibility of a match for sample text datanot being found, the stored metadata 432 may include multiple text datasamples. In some implementations, at least one of the unique text datasamples may not appear at or near the beginning of the program 500selected for recording. In those cases, the stored metadata 432 mayinclude an offset, measured in terms of time (such as PTS units), numberof video frames, or some other data indicating the period of time fromthe start of the program 500 to the location within the program 500 ofthe associated text data sample. Hence, once the control circuitry 410finds the text data sample in the program 500, the control circuitry 410may use the offset from the metadata 432 and the location within therecording 500 at which the text data sample match was found to determinethe actual start time 502B of the program 500.

In a similar embodiment illustrated in FIG. 6A, the stored metadata 432may include data that logically partitions a program 600 into a numberof segments 602A-602E. Between the various segments 602A-602E,interstitials 604A-604D, such as commercial breaks, may be located. Onesegment 602A of the program 600 is shown in greater detail in FIG. 6B,in which an anchor video frame 701 is identified. The anchor frame 701may be a frame at which a text data sample in the metadata 432 appearsin the program 600. The metadata 432 may further include a start offset703 indicating the time or distance from a starting frame 702 of thesegment 602A to the anchor frame 701, as well as an end offset 705specifying a time or distance from the anchor frame 701 to the segment602A ending frame 704. Such information is useful in implementations inwhich the control circuitry 410 is configured to record the segments 602while interrupting the recording operation for the interstitials 604based on the stored metadata 432.

This particular form of metadata 432 may also be employed to determinethe actual start time 612 of the program 600 as shown in FIG. 6. Morespecifically, the control circuitry 410 of the set-top box 304 may beconfigured to search for the text data sample associated with the anchorframe 701 of the first segment 602A. If found, the control circuitry 410may utilize the position of the anchor frame 701 and the start offset703 to determine the starting frame 702 of the first segment 602A, whichis aligned with the actual start time 612 of the program 600. Thisinformation may then be used to determine the actual end time 614 andmodify a recording timer for the program 600 accordingly. In the case atext data sample for a subsequent segment 602B-602E is employed forcomparison, the metadata 432 may also include an offset indicating thetime or distance between the start of the subsequent segment 602B-602Eand the start of the program 600.

Returning to FIG. 5, depending on the location of the text data samplewithin a program 500, the control circuitry 410 may begin searching forthe text data sample in the program 500 starting at the expected starttime 502A, or starting the search as late as the expected location ofthe text data sample within the program 500, as indicated by an offsetvalue in the metadata 432. The search may then progress until a matchfor the text data sample is found, or until some predetermined timelimit is reached.

While the embodiments described to this point involve the use of a textdata sample for matching with text data, such as closed captioning orsubtitling, integrated with the program 500 to be recorded, otherportions of the program 500 may be similarly utilized. For example, inone implementation, instead of a text data sample, the metadata 432 mayinclude a sample audio clip, possibly of a few seconds in length, whichis to be matched with a portion of the audio data of the program 500. Ifthe control circuitry 410 finds a match, the control circuitry 410 maythen adjust the ending time for the recording of the program 500accordingly. In this case, a comparison between the sample audio clipand the audio data may be considered a match if the comparison indicatesa match within some predetermined level or percentage of error in orderto take normal signal noise or similar maladies into account. Use of asample audio clip instead of a text data sample may be appropriate incases in which closed captioning or subtitling is not available. Thesample audio clip may be a unique phrase, such as an audibleintroduction to the show, or some other audio clip residing at thebeginning of the program 500, or later therein.

Similarly, instead of either a text data sample or an audio clip, themetadata 432 may designate the actual beginning of a program 500 by wayof a sample video frame, such as an introductory “splash” or titlescreen typically associated with a particular program 500, or anotherunique video frame, or set of video frames, within the program 500. Inthis situation, the control circuitry 410 may compare the video framesof the program 500 with the sample video frame until a match is found.Further, a video frame match may involve a complete match, a matchwithin a certain level of error, or a match with a predetermined subsetor portion of a video frame.

As with the use of text data as comparison data, the video frames oraudio clips used to determine the actual start time 502A of a program500 may reside at or near the start of the program 500, at somesignificant offset from the start of the program 500, or within asegment of a multi-segment program 600, as described above with respectto the use of text data.

Given the number of possible metadata 432 to be used, and the number ofways in which the control circuitry 410 may use the metadata 432 todetermine the actual start time 502B of a program 500, the user mayspecify one or more parameters 436 by way of the user interface 406 forsaving in the data storage 408. The control circuitry 410 may thenperform its operations as discussed above on the basis of theseparameters 436. One example of a user-defined parameter 436 may includethe length of time during which the control circuitry 410 may search fora text data sample, or a sample audio clip or video frame, beforestopping. Another parameter 436 may be how much of a delay in theprogram 500 is tolerated before the expected end time 504A of theassociated recording timer 434 is modified. Other parameters 436 fordirecting the operation of the control circuitry 410 as described abovemay be set by the user in other implementations.

At least some of the embodiments presented above allow a set-top box orother media content receiving device to automatically extend a recordingof a selected program or media event when the start of transmission orbroadcast of the event has been delayed with little or no warning. In sodoing, less user frustration due to partial recordings of favoriteshows, movies, sporting events, and so on, is likely to result.

While several embodiments of the invention have been discussed herein,other implementations encompassed by the scope of the invention arepossible. For example, while various embodiments have been describedlargely within the context of a satellite television set-top box, thedesign of other types of media content receivers, such as cable andterrestrial television set-top boxes, standalone DVRs, cellulartelephones, PDAs, and desktop and laptop computers, that are capable ofrecording content for subsequent user consumption may employ variousaspects of the systems and methods described above to similar effect. Inaddition, aspects of one embodiment disclosed herein may be combinedwith those of alternative embodiments to create further implementationsof the present invention. Thus, while the present invention has beendescribed in the context of specific embodiments, such descriptions areprovided for illustration and not limitation. Accordingly, the properscope of the present invention is delimited only by the following claimsand their equivalents.

The invention claimed is:
 1. A method comprising: receiving a televisionprogram that includes a plurality of video frames and text data to bedisplayed with the video frames; receiving metadata that includes sampletext data, a first offset indicating a distance from a starting videoframe of the television program to a selected video frame of thetelevision program that includes the sample text data, and a secondoffset indicating a distance from an ending video frame of thetelevision program to the selected video frame of the television programthat includes the sample text data; storing a user-defined parameterindicating an amount of delay; storing a recording timer that includesan expected start time of the television program and an expected endtime of the television program; beginning recording of a the televisionprogram at the expected start time included in the recording timer;comparing the sample text data included in the metadata to the text dataincluded in the television program; if the sample text data included inthe metadata matches the text data included in the television program,reading, while the television program is being recorded, a time stampassociated with the selected video frame of the television program thatincludes the sample text data; calculating an actual start time based onthe first offset included in the metadata and the time stamp associatedwith the selected video frame, and an actual end time of the televisionprogram based on the second offset included in the metadata and the timestamp associated with the selected video frame; if a difference betweenthe expected start time included in the recording timer and the actualstart time exceeds the amount of delay indicated by the parameter,adjusting the expected end time included in the recording timer toextend the recording by adding to the expected end time included in therecording timer the difference between the expected start time includedin the recording timer and the actual start time; and stopping therecording of the television program according to the expected end timeincluded in the recording timer.
 2. The method of claim 1 comprising:receiving a sample video frame prior to the expected start time includedin the recording timer; and comparing the sample video frame with videoframes of the television program while the program is being recorded. 3.The method of claim 2 comprising selecting the selected video framebased on comparing the sample video frame with the video frames of thetelevision program.
 4. The method of claim 3 wherein the selected videoframe matches the sample video frame.
 5. The method of claim 3 whereinthe time stamp indicates a chronological position of the selected videoframe in the television program.
 6. The method of claim 1 comprising:receiving the sample text data prior to recording the televisionprogram, wherein the sample text data is compared to the text dataincluded in the television program during the recording.
 7. The methodof claim 6 wherein the selected video frame corresponds to a video frameassociated with text data that matches the sample text data.
 8. Themethod of claim 7 wherein the sample text data is a portion of the textdata included in the television program received prior to the expectedstart time included in the recording timer.
 9. The method of claim 1comprising: storing a user-defined parameter indicating a length of timefor searching; and if a match between the sample text data included inthe metadata matches and the text data included in the televisionprogram is not found, stopping the comparing of the sample text dataincluded in the metadata to the text data included in the televisionprogram after the length of time for searching indicated by theparameter has elapsed.
 10. The method of claim 1 comprising:preemptively adjusting the expected end time included in the recordingtimer before a match is found between the sample text data included inthe metadata and the text data included in the television program.
 11. Atelevision receiver comprising: an input configured to receive from atelevision provider a television program that includes a plurality ofvideo frames and text data to be displayed with the video frame; amemory configured to store a recording of the television programreceived at the input, a user-defined parameter indicating an amount ofdelay, a recording timer that includes an expected start time of thetelevision program and an expected end time of the television program,and metadata that includes sample text data, a first offset indicating adistance from a starting video frame of the television program to aselected video frame of the television program that includes the sampletext data, and a second offset indicating a distance from an endingvideo frame of the television program to the selected video frame of thetelevision program that includes the sample text data; a control circuitcoupled to the memory and the input and configured to begin recordingthe television program to the memory at the expected start time includedin the recording timer, to compare the sample text data included in themetadata to the text data included in the television program, to read atime stamp of the selected video frame of the television program thatincludes the sample text data, while the television program is beingrecorded if the sample text data included in the metadata matches thetext data included in the television program, to estimate an actualstart time based on the first offset included in the metadata and thetime stamp associated with the selected video frame and an actual stoptime of the television program based on the second offset included inthe metadata and the time stamp of the selected video frame, to adjustthe expected end time included in the recording timer to extend therecording by adding to the expected end time included in the recordingtimer a difference between the expected start time included in therecording timer and the actual start time if the difference between theexpected start time included in the recording timer and the actual starttime exceeds the amount of delay indicated by the parameter, and to stoprecording the television program at the expected end time included inthe recording timer.
 12. The television receiver of claim 11 wherein thecontrol circuit is configured to receive a sample video frame prior tothe scheduled recording time and to compare the sample video frame withvideo frames of the television program while the program is beingrecorded.
 13. The television receiver of claim 12 wherein the controlcircuit is configured to select the selected video frame based on acomparison of the sample video frame with video frames of the televisionprogram.
 14. The television receiver of claim 13 wherein the selectedvideo frame matches the sample video frame.
 15. The method of claim 13wherein the time stamp indicates a chronological position of theselected video frame in the television program.
 16. The televisionreceiver of claim 11 wherein the control circuit is configured toreceive the sample text data prior to recording the television programand to compare the sample text data to text data of the televisionprogram while the television program is being recorded.
 17. Thetelevision receiver of claim 16 wherein the selected video framecorresponds to a video frame associated with text data that matches thesample text data.
 18. The television receiver of claim 17 wherein thesample text data is a portion of the text data of the television programreceived prior to the scheduled start time of the television program.19. The television receiver of claim 11 wherein the memory is configuredto store a user-defined parameter indicating a length of time forsearching, and the control circuit is configured to stop comparing thesample text data included in the metadata to the text data included inthe television program after the length of time for searching indicatedby the parameter has elapsed, if a match between the sample text dataincluded in the metadata matches and the text data included in thetelevision program is not found.
 20. The television receiver of claim 11wherein the control circuit is configured to preemptively adjust theexpected end time included in the recording timer before a match isfound between the sample text data included in the metadata and the textdata included in the television program.